package com.lxmes.sales.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.lxmes.common.annotation.Excel;
import com.lxmes.common.core.domain.BaseEntity;

/**
 * 销售正式订单对象 nc_sales_order
 *
 * @author ruoyi
 * @date 2022-11-23
 */
@Data
@ToString
@AllArgsConstructor
@NoArgsConstructor
public class NcSalesOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 公司代码 */
    @Excel(name = "公司代码")
    private String factoryCode;

    /** 公司名称 */
    @Excel(name = "公司名称")
    private String factoryName;

    /** 订单类别 正式/预测 */
    @Excel(name = "订单类别 正式/预测")
    private String orderType;

    /** 特殊要求 */
    private String specialRequirements;

    /** 订单号 */
    @Excel(name = "订单号",type= Excel.Type.EXPORT)
    private String orderNumber;

    /** 客户编码 */
    @Excel(name = "客户编码")
    private String clientNo;

    @Excel(name = "客户名称")
    private String clientName;

    /** 生产订单类型 */
    @Excel(name = "生产订单类型")
    private String productOrderType;

    /** 产品状态 */

    private String productState;

    /** 订单状态 */

    private String orderState;

    /** 审核人员 */

    private String auditUser;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")

    private Date auditTime;

    /** 审核车间 */

    private String auditWorkshop;

    /** 配置类型 */

    private String configType;

    /** 数量 */
    @Excel(name = "数量")
    private Long number;

    /** 交货期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "交货期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date deliveryDate;


    /** 产品类型 */
    @Excel(name = "产品类型")
    private String productType;

    /** 未排产 */
    private Long noPcNum;

    /** 预排 */
    @Excel(name = "预排数量")
    private Long yuPcNum;

    /** 排产 */
    @Excel(name = "排产数量")
    private Long pcNum;

    /** 生产 */
    private Long scNum;

    /** 完成数量 */
    @Excel(name = "完成数量")
    private Long finishNum;

    /** 排产驾驶室 */

    private String pcJss;

    /** 产品型号 */
    @Excel(name = "产品型号")
    private String productModel;

    /** 基本型图号 */

    private String baseItemNum;

    /** PZK图号 */

    private String pzkItemNum;

    /** 产品选装号 */

    private String zcXzNo;

    /** 配置号 */

    private String configNo;

    /** 配置要求 */

    private String configRequire;

    /** 原交货期 */

    private String oDeliveryDate;

    /** 颜色 */

    private String color;

    /** 排产状态 */

    private String pcState;

    /** CCC公告 */

    private String cccNotice;

    /** 工信部公告 */

    private String gxbNotice;

    /** 驳回原因 */

    private String rejectReason;



    /** 卡车类型 */

    private String truckType;

    /** 国家 */

    private String country;

    /** 用户 */

    private String user;

    /** 建议排产车间 */

    private String jyPcCj;

    /** 三类底盘类型 */

    private String slDpLx;

    /** 通知单号 */

    private String noticeOrderNo;

    /** 是否急单 */

    private String isEmergency;

    /** 系列 */

    private String series;

    /** 驱动形式 */

    private String qdxs;

    /** 新车型类型 */

    private String newCarType;

    /** 新车型说明 */

    private String newCarInstruction;

    /** 技术确认状态 */

    private String tecConfirmState;

    /** 技术确认说明 */

    private String tecConfirmInfo;

    /** 接单时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date orderTime;

    /** 技术确认时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date tecConfirmTime;

    /** 加急确认时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date emeConfirmTime;

    /*合同编号*/
    @Excel(name = "合同编号",type = Excel.Type.EXPORT)
    private String contractNo;


    private String orderRevocFlag;

    /*物料编号*/
    @Excel(name = "产品编号")
    private String itemCode;

    /*物料子号*/
    @Excel(name = "产品子号")
    private String itemSubCode;

    @Excel(name = "产品名称")
    private String itemName;

    @Excel(name = "产品识别码")
    private String itemIdentifyCode;

    private String [] lineSimpleCode;

    private String prodWay;

    private String outsourType;

    private String outsourOrderNo;

    private String supplierCode;

    private String supplierName;

    private Integer wxNum;

    private Integer zcNum;

//    @Excel(name = "物料单价")
    private BigDecimal itemPrice;

    private String createDate;

    /*倒角*/
    private String dj;
    private String unit;

    /*水线*/
    private String sx;

    /*密封面倒角*/
    private String mfmdj;

    /*拆分标记*/
    private String cfbj;

    private int splitRow;
    /*备注*/
    private String remark;
    /*说明*/
    private String content;

    private String clientContractNo;

    /*是否被资源验算过*/
    private String isYsed;
    /*采购单价==合同单价*/
    private BigDecimal contractUnitPrice;
    /*计划单价*/
    private BigDecimal jhUnitPrice;

    /** 部门数据隔离代码 */
    private Long deptId;











}
